OpenCV – C++使用try catch捕捉OpenCV异常
1 C++使用try catch捕捉OpenCV抛出的异常 在OpenCV写相关代码时,如果某个部分代码有bug,则会直接抛出异常,同时也会终止程序,并且我们并不知道出现异常的原因是什么,所以为了增强程序的健壮性,我们需要捕获OpenCV的异常进行后续处理。在OpenCV中异常类是cv::Excep…
- OpenCV
- 2023-11-30
OpenCV – cv::Mat转换为CImage,支持透明通道图片转换
如果要将新版本的OpenCV的cv::Mat显示到HWND上,之前都是说使用修改过的CvvImage类进行显示,但是这个类有个缺点就是不能显示带有透明通道的cv::Mat,而目前好的方式是将cv::Mat转换为MFC的CImage类,不过之前别人写的都只是支持CV_8UC1和CV_8UC3的cv::…
- OpenCV
- 2023-09-25
OpenCV – 图片增加透明通道,图片合并透明通道
1 为图像增加透明通道 一般人像抠图相关的AI模型会输出一个Mask图,这个Mask图就是我们需要的可以将人物抠出来的Alpha通道信息,我们需要将这个Mask图附加到原始图片上,从BGR图片转成BGRA图片或者从RGB图片转成RGBA图片。 如果使用OpenCV进行图像处理,在为图像增加透明通道时…
- OpenCV
- 2023-07-12
OpenCV – OpenCV打开摄像头显示摄像头帧率
1 OpenCV打开摄像头显示摄像头帧率 通过OpenCV打开摄像头,并获取摄像头的视频帧进行显示或者继续进一步后处理,我们都希望显示当前的帧率,特别是对于实时性要求较高的应用,比如说实时目标检测,下面给出了一段显示OpenCV摄像头帧率的示例代码,可供参考。 #include <iostre…
- C++
- 2023-06-29
OpenCV | OpenGL – OpenCV的cv::mat转换为OpenGL的GL_TEXTURE_2D纹理数据
1 OpenCV的cv::Mat转换为OpenGL的GL_TEXTURE_2D纹理数据 在有些场景下我们需要将OpenCV处理之后的cv::Mat转为OpenGL的GL_TEXTURE_2D类型的纹理数据,比如说使用OpenCV读取图片文件作为OpenGL的纹理使用。 在https://gist.g…
- C++
- 2023-06-19
OpenCV | C++ – 将一张图片叠加到另一张图片的指定位置上显示
比如现在有一张小图,是一张logo图片,然后有张大图,是一张底图,现在需要将这张logo叠加到底图的指定位置上进行显示,这个时候我们就可以使用OpenCV的ROI功能。 具体的示例代码如下 #include <iostream> #include <opencv2/opencv.h…
- OpenCV
- 2023-06-07
OpenCV | C++ – convertTo函数的执行效率问题,AI模型部署数据预处理的瓶颈
1 convertTo的执行效率问题 最近几天在使用TensorRT对BackgroundMattingV2抠图模型进行推理的时候,使用OpenCV作为图片数据的前处理工具,在这个模型部署的过程中,我发现OpenCV的转换图片数据类型的函数convertTo在处理大图片时非常耗时,可能这个时间比模型…
- OpenCV
- 2023-06-07
OpenCV | C++ – 为原始图片添加透明通道,并将图片中的红色区域置为透明并保存
1 为原始图片添加透明通道,并将图片中的红色区域置为透明 先正常读取一张彩色图片,然后为彩色图片添加一个透明通道,然后将彩色图片中是红色的区域置为透明,然后保存为带有透明通道的彩色图片。 示例的C++代码如下 #include <iostream> #include "opencv2/o…
- OpenCV
- 2023-06-05
C++/OpenCV – 详解如何一步步将OpenCV的cv::Mat转换成深度学习模型推理所需的输入数据
在视觉任务的深度学习模型的训练过程中,一般需要对数据集中的图片进行预处理,这些操作一般都包括: resize图片大小 转为RGB 归一化到[0,1] 减均值 除方差 在Pytorch中一般使用torchvision.transforms对图片进行归一化处理,比如经常会使用以下的代码 transfor…
- C++
- 2023-03-28
OpenCV – 在图像处理教程使用最广的测试美女图片Lenna,Lenna原图
Lenna(或 Lena)图片是在图像处理领域使用最广泛的标准测试图像之一。 相信使用过OpenCV或者了解图像处理的朋友对这张图片应该不陌生吧,除了在教科书中,也会在各种博客、教程中看到经常使用这张图片作为示例图片,而这张图片的的主人公是Lenna。 那么为什么这张图片会成为在图像领域使用最广泛的…
- OpenCV
- 2023-03-28
OpenCV – 指定插值方法改善resize函数缩放图片时出现锯齿、失真、清晰度降低问题
1 指定插值方法改善resize函数缩放图片时出现锯齿感和失真问题 最近使用OpenCV对视频数据进行裁剪和缩放到指定的分辨率时,发现如果只是裁剪视频两侧多余的背景,视频的清晰度还是和原视频一样保持不变,但是如果在裁剪之后继续缩放到指定的分辨率,最后的结果数据就会出现比较严重的锯齿感和失真,与原视频…
- OpenCV
- 2022-11-10
Python – 在子线程中使用OpenCV异步读取摄像头视频帧传递到主线程中进行处理
一般情况下,我们会在主线程中直接使用opencv打开摄像头然后读取的视频帧进行操作,这种方式是阻塞的,如果我们想要在主线程读取摄像头视频帧的时候还进行其他的操作会非常不方便。这个时候有必要将读取摄像头视频帧的这一部分代码移动到子线程中,然后通过队列使得主线程可以获取摄像头的视频帧,同时也不会阻塞主线…
- Python
- 2022-08-19